﻿#define _CRT_SECURE_NO_WARNINGS 1
////猜数字游戏
//#include<stdio.h>
//#include<stdlib.h>
//#include<time.h>
//void menu()
//{
//	printf("****************************\n");
//	printf("******1.paly    0.exit******\n");
//	printf("****************************\n");
//
//}
//void game()
//{
//	//1.生产随机数
//	//srand((unsigned int)time(NULL));//要给srand传递一个变化的值，计算机上的时间是时刻发生变化的
//	//srand( unsigned int seed )
//	//time函数可以返回一个时间戳 - time_t
//	//rand();//生产随机数,随机数范围0-32767
//	int ret = rand() % 100 + 1;//生产随机数,随机数范围1-100
//	//printf("%d", ret);
//	//2.猜数字
//	int guess = 0;
//	while(1)
//	{
//		printf("请猜数字:>");
//		scanf("%d", &guess);
//		if (guess > ret)
//		{
//			printf("猜大了\n");
//		}
//		else if (guess < ret)
//		{
//			printf("猜小了\n");
//		}
//		else
//		{
//			printf("恭喜你，猜对了\n");
//			break;
//		}
//	}
//}
//int main()
//{
//	int input = 0;
//	srand((unsigned int)time(NULL));
//	//打印菜单
//	//1.玩游戏
//	//2.退出游戏
//	do
//	{
//		menu();
//		printf("请选择:>");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 1:
//			printf("猜数字游戏\n");
//			game();
//			break;
//		case 0:
//			printf("退出游戏\n");
//			break;
//		default:
//			printf("选择错误,请重新输入\n");
//			break;
//		}
//	} while (input);
//	
//	return 0;
//}

//#include<stdio.h>
//int main()
//{
//again:
//	printf("hello\n");
//	goto again;
//end:
//	return 0;
//}

//#include<stdio.h>
//#include<stdlib.h>
//#include<time.h>
//int main()
//{
//	srand((unsigned int)time(NULL));
//	int i = 0;
//	for(i=0;i<3;i++)
//	{
//		int randomNumber = rand()%100+1;
//		printf("%d\n", randomNumber);
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//    int i = 1;
//LOOP:
//    printf("%d ", i);
//    i++;
//    if (i <= 10)
//        goto LOOP;
//    return 0;
//}

//void test()
//{
//flag:
//	printf("test\n");
//}
//#include<stdio.h>
//int main()
//{
//	printf("1\n");
//	goto flag;//goto语句只能在当前函数内跳转，不能跨函数跳转
//	return 0;
//}

//for (...)
//for (...)
//{
//    for (...)
//    {
//        if (disaster)
//            goto error;
//    }
//}
//…
//error :
//if (disaster)
//// 处理错误情况


//关机程序
// 1.程序运行起来，将会在一分钟内关机
// 2.如果输入1，我们就取消关机
//#include<stdio.h>
//#include<stdlib.h>
//int main()
//{
//	int input = 0;
//	//程序关机倒计时
//again:
//	system("shutdown -s -t 60");
//	printf("请注意,你的电脑将在1分钟内关机，如果输入1，就会取消关机\n");
//	scanf("%d", &input);
//	if (input == 1)
//	{
//		system("shutdown -a");
//	}
//	else
//	{
//		goto again;
//	}
//	return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//int main()
//{
//    int input[10] = 0;
//    system("shutdown -s -t 60");
//    while (1)
//    {
//        printf("电脑将在1分钟内关机，如果输入：1，就取消关机!\n请输入:>");
//        scanf("%d", &input);
//        if (1 == input)
//        {
//            system("shutdown -a");
//            break;
//        }
//    }
//    return 0;
//}

///*
//思路：
//素数：即质数，除了1和自己之外，再没有其他的约数，则该数据为素数，具体方式如下
//*/
//
//
////方法一：试除法
//int main()
//{
//	int i = 0;
//	int count = 0;
//
//
//	// 外层循环用来获取100~200之间的所有数据，100肯定不是素数，因此i从101开始
//	for (i = 101; i <= 200; i++)
//	{
//		//判断i是否为素数：用[2, i)之间的每个数据去被i除，只要有一个可以被整除，则不是素数
//		int j = 0;
//		for (j = 2; j < i; j++)
//		{
//			if (i % j == 0)
//			{
//				break;
//			}
//		}
//
//		// 上述循环结束之后，如果j和i相等，说明[2, i）之间的所有数据都不能被i整除，则i为素数
//		if (j == i)
//		{
//			count++;
//			printf("%d ", i);
//		}
//	}
//
//
//	printf("\ncount = %d\n", count);
//	return 0;
//}
//
//
////上述方法的缺陷：超过i一半的数据，肯定不是i的倍数，上述进行了许多没有意义的运算，因此可以采用如下
//// 方式进行优化
//// 方法二：每拿到一个数据，只需要检测其：[2, i/2]区间内是否有元素可以被2i整除即可，可以说明i不是素数
//int main()
//{
//	int i = 0;//
//	int count = 0;
//
//
//	for (i = 101; i <= 200; i++)
//	{
//		//判断i是否为素数
//		//2->i-1
//		int j = 0;
//		for (j = 2; j <= i / 2; j++)
//		{
//			if (i % j == 0)
//			{
//				break;
//			}
//		}
//		//...
//		if (j > i / 2)
//		{
//			count++;
//			printf("%d ", i);
//		}
//	}
//
//
//	printf("\ncount = %d\n", count);
//	return 0;
//}
//
//
//
//
///*
//方法二还是包含了一些重复的数据，再优化：
//如果i能够被[2, sqrt(i)]之间的任意数据整除，则i不是素数
//原因：如果 m 能被 2 ~ m-1 之间任一整数整除，其二个因子必定有一个小于或等于sqrt(m)，另一个大于或等于 sqrt(m)。
//*/
//int main()
//{
//	int i = 0;
//	int count = 0;
//
//
//	for (i = 101; i <= 200; i++)
//	{
//		//判断i是否为素数
//		//2->i-1
//		int j = 0;
//		for (j = 2; j <= sqrt(i); j++)
//		{
//			if (i % j == 0)
//			{
//				break;
//			}
//		}
//		//...
//		if (j > sqrt(i))
//		{
//			count++;
//			printf("%d ", i);
//		}
//	}
//
//
//	printf("\ncount = %d\n", count);
//	return 0;
//}
//
//
////方法4
///*
//继续对方法三优化，只要i不被[2, sqrt(i)]之间的任何数据整除，则i是素数，但是实际在操作时i不用从101逐渐递增到200，因为出了2和3之外，不会有两个连续相邻的数据同时为素数
//*/
//
//
//int main()
//{
//	int i = 0;
//	int count = 0;
//
//
//	for (i = 101; i <= 200; i += 2)
//	{
//		//判断i是否为素数
//		//2->i-1
//		int j = 0;
//		for (j = 2; j <= sqrt(i); j++)
//		{
//			if (i % j == 0)
//			{
//				break;
//			}
//		}
//		//...
//		if (j > sqrt(i))
//		{
//			count++;
//			printf("%d ", i);
//		}
//	}
//
//	printf("\ncount = %d\n", count);
//	return 0;
//}


//#include<stdio.h>
//#include<windows.h>
//#include<time.h>
//#define totalCount 10//只有10次猜数字机会
//void menu()
//{
//	printf("**********************\n");
//	printf("***   1.想玩游戏   ***\n");
//	printf("***   0.退出游戏   ***\n");
//	printf("**********************\n");
//}
//void game()
//{
//	//产生随机数
//	int ret = rand() % 100 + 1;
//	int guess = 0;
//	int count = 0;//机会
//	while ((totalCount - count)>0)
//	{
//		//输入猜的数字
//		printf("请输出你要猜的数字:>");
//		scanf("%d", &guess);
//		if (guess > ret)
//		{
//			printf("猜大了!\n");
//			count++;
//			if (totalCount - count == 0)
//				printf("10次机会用完了,再来一局吧\n\n");
//			else
//				printf("你还有%d次机会了哟!\n", totalCount - count);
//
//		}
//		else if (guess < ret)
//		{
//			printf("猜小了!\n");
//			count++;
//			if (totalCount - count == 0)
//				printf("10次机会用完了,再来一局吧\n\n");
//			else
//				printf("你还有%d次机会了哟!\n", totalCount - count);
//		}
//		else
//		{
//			printf("太棒了，你猜对啦!\n");
//			printf("你只用%d次就答对了哟\n", count + 1);
//			printf("\n");
//			break;
//		}
//		
//	}
//}
//int main()
//{
//	int input = 0;
//	srand((unsigned int)time(NULL));//产生随机种子
//	do
//	{
//		menu();
//		printf("请输入(1)or(0):>");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 1:
//			printf("马上就要开始游戏了哟\n");
//			printf("请等待1秒\n");
//			Sleep(1000);
//			game();
//			break;
//		case 0:
//			printf("亲,游戏已经退出\n");
//			break;
//		default:
//			printf("亲,你输入错误啦,需要重新再输入一次\n");
//			break;
//		}
//	} while (input);
//	return 0;
//}